The present invention is directed to data compression and decompression and, more particularly, to a video decoder that performs inter-prediction processes of pictures in parallel.
Data compression is used for reducing the volume of data stored, transmitted or reconstructed (decoded and played back), especially for video content. Decoding recovers the video content from the compressed data in a format suitable for display. Various standards of formats for encoding and decoding compressed signals efficiently are available. One standard that is commonly used is the International Telecommunications Union standard ITU-T H.264 ‘Advanced video coding for generic audiovisual services’.
Techniques used in video compression include inter-coding and intra-coding. Inter-coding uses motion vectors for block-based inter-prediction to exploit temporal statistical dependencies between items in different pictures (which may relate to different frames, fields, slices or macroblocks or smaller partitions). The inter-prediction picture item data used for inter prediction decoding includes the motion vector, an index to a reference picture, the relevant block of which has to be decoded before the inter-prediction decoding can be completed, and other data such as the block size. Intra-coding uses various spatial prediction modes to exploit spatial statistical dependencies (redundancies) in the source signal for items within a single picture. Prediction residuals, which define residual differences between the reference picture item and the currently encoded item, are then further compressed using a transform to remove spatial correlation inside the transform block before it is quantized during encoding. Finally, the motion vectors or intra-prediction modes are combined with the quantized transform coefficient information and encoded.
The decoding process involves taking the compressed data in the order in which it is received, decoding the data for the different picture items, and combining the inter-coded and intra-coded items according to the motion vectors or intra-prediction modes. Decoding an intra-coded picture can be done without reference to other pictures. Decoding an inter-coded picture item uses the motion vectors together with blocks of sample values from a reference picture item selected by the encoder.
In a parallel decoder, different dedicated threads are processed simultaneously, for example in a multi-core processor. During decoding an inter-coded picture, the inter-prediction process can start before the reference picture has been completely decoded. However, the gain of speed potential of parallel decoding can be lost if the inter-prediction process is blocked waiting for completion of the reference picture item decoding process.
It would be advantageous to have a parallel decoder for video data in which delay of the inter-prediction process due to waiting for completion of reference picture item decoding is reduced or eliminated.